package com.hzh.scala

import scala.io.Source

/**
 * 统计单词的数量
 *
 */

object Demo20WordCount {
  def main(args: Array[String]): Unit = {

    //链式调用

    //1、读取文件
    val lines: List[String] = Source.fromFile("data/words.txt").getLines().toList
    //2、将一行中的多个单词展开，变成一个单词一行
    val words: List[String] = lines.flatMap((line: String) => line.split(","))
    //3、按照单词 分组
    val groupBy: Map[String, List[String]] = words.groupBy((word: String) => word)
    //4、统计单词的数量
    val wordCount: Map[String, Int] = groupBy.map((kv: (String, List[String])) => {
      //分组 单词
      val word: String = kv._1
      //组内多有的单词
      val values: List[String] = kv._2
      //计算单词的数量
      val count: Int = values.length
      //返回单词和单词的数量
      (word, count)
    })


  }
}
